<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>layui</title>
    <meta name="renderer" content="webkit">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
    <link rel="stylesheet" href="../../lib/layui-v2.6.3/css/layui.css" media="all">
    <link rel="stylesheet" href="../../css/public.css" media="all">
    <style>
        body {
            background-color: #ffffff;
        }
    </style>
</head>
<body>
<div class="layui-form layuimini-form" lay-filter="userForm">
    <!--隐藏域，将用户表user表的用户id传递到后台进行数据的更新操作-->
    <input type="hidden" name="id">
    <div class="layui-form-item">
        <label class="layui-form-label required">用户名</label>
        <div class="layui-input-block">
            <input type="text" name="username" lay-verify="required" lay-reqtext="用户名不能为空" placeholder="请输入用户名" value="" class="layui-input">
            <tip>填写自己管理账号的名称。</tip>
        </div>
    </div>
    <div class="layui-form-item">
        <label class="layui-form-label required">性别</label>
        <div class="layui-input-block">
            <input type="radio" name="sex" value="1" title="男" checked="">
            <input type="radio" name="sex" value="2" title="女">
        </div>
    </div>
    <div class="layui-form-item">
        <label class="layui-form-label required">手机</label>
        <div class="layui-input-block">
            <input type="text" name="tel" lay-verify="required" lay-reqtext="手机不能为空" placeholder="请输入手机" value="" class="layui-input">
        </div>
    </div>
    <div class="layui-form-item">
        <label class="layui-form-label">城市</label>
        <div class="layui-input-block">
            <input type="text" name="city" placeholder="请输入城市" value="" class="layui-input">
        </div>
    </div>

    <div class="layui-form-item">
        <label class="layui-form-label">角色</label>
        <div class="layui-input-block">
            <!--添加下拉选，使用第三方开发的插件:xm-select
             官网地址: https://maplemei.gitee.io/xm-select/#/basic/use
             -->
            <div id="role" class="xm-select-demo"></div>
        </div>
    </div>

    <div class="layui-form-item">
        <div class="layui-input-block">
            <button class="layui-btn layui-btn-normal" lay-submit lay-filter="saveBtn">确认保存</button>
        </div>
    </div>
</div>
<script src="../../lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
<script>
    layui.extend({  //扩展模板
        xmSelect:'/extend/xm-select'  //加载xm-select.js的位置
    }).use(['form','xmSelect'], function () {
        var form = layui.form,
            layer = layui.layer,
            xmSelect = layui.xmSelect,
            $ = layui.$;

        //渲染下拉选
        let roleSelect = xmSelect.render({
            el: '#role',
            data: [      //{name: , value: }
                // {name: '张三', value: 1},
                // {name: '李四', value: 2},
                // {name: '王五', value: 3},
            ]
        })

        //发送异步请求，查询所有的角色
        $.get('/role/all', function (res) {
            let dt = res.data  // 所有的角色信息都在这里  [{roleId= ? ,roleName = ?}]
            let array = []     //创建一个空数组
            for (let i = 0; i < dt.length; i++) {
                let obj = {};     //空对象，下述为空对象动态的添加值
                obj.name = dt[i].comments   //dt[i]:每一个用户的信息 comments:Role.java实体类中comments(管理员、普通用户)
                obj.value = dt[i].roleId
                array.push(obj)  //将obj推送进去
            }
            console.log(array)

            //根据用户id，查询用户信息，用于回显数据
            let id = sessionStorage.getItem("userId");
            //关闭会话存储，清除会话存储数据
            sessionStorage.removeItem("userId");
            //打印查看一下
            //console.log("id = " +id)  //例如选择24这一行，控制台打印:id=24
            let roleIds; //全局变量
            $.get('/user/getById', {id}, function (res) {
                if (res.code == 0) {
                    console.log(res.data)
                    //回显表单数据
                    //form.val("formTest", { //formTest 即 class="layui-form" 所在元素属性 lay-filter="" 对应的值
                    form.val('userForm', res.data)
                    //获取角色id，渲染下拉选
                    roleIds = res.data.roleIds
                    console.log("roleIds = " + roleIds)

                    //更新下拉选
                    roleSelect.update({
                        data: array,    //数据
                        initValue: roleIds,
                        autoRow: true  //自动换行，一行显示不下，将会自动换行
                    })
                    //重新渲染表单
                    form.render()
                }
            })
        })


        //监听提交
        form.on('submit(saveBtn)', function (data) {
            let roleIds = roleSelect.getValue("value"); // [1, 2]
            data.field.roleIds = roleIds
            // console.log(data.field)
            //转换成JSON字符串形式
            let user_json =  JSON.stringify(data.field)
            console.log(user_json) //{"id":"24","username":"root1","sex":"男","tel":"15755361111","city":"安徽合肥","select":"1,2","roleIds":[1,2]}

            //发送ajax请求，参数格式 json
            $.ajax({
                url:'/user/update',
                type:'post',
                data:user_json,
                contentType:'application/json;charset=utf-8', //参数格式的声明  json
                dataType:'JSON',
                success:function (res) {  //成功之后应该怎么办
                    if(res.code==0){
                        layer.msg(res.msg,function () {
                            //关闭弹窗
                            var iframeIndex = parent.layer.getFrameIndex(window.name);
                            parent.layer.close(iframeIndex);
                            // 刷新父页面中的table
                            parent.layui.table.reload("currentTableId");
                        })
                    }else {
                        layer.msg(res.msg)
                    }
                }
            })
            return false;
        });

    });
</script>
</body>
</html>